package com.lx.service;

import com.lx.bean.BootstrapTableUser;
import com.lx.bean.User;
import com.lx.dao.UserDao;
import com.lx.dao.imp.UserDaoImpl;
import com.lx.util.DateFormatUtil;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName: UserService
 * @Description:
 * @Date Created in  2021-07-09 20:38
 * @Modified By:
 * @Author: 零巽
 */
public class UserService {
    private static UserDao userDao = new UserDaoImpl();

    /**
     * 获取用户列表的方法
     *
     * @param limit    是否分页，true表示是
     * @param offset   索引起始值
     * @param pageSize 每页条数
     * @return 包含用户的List
     */
    public static List<BootstrapTableUser> getAllUser(Boolean limit, int offset, int pageSize) {
        List<User> allUser = userDao.getAllUser(limit, offset, pageSize);
        List<BootstrapTableUser> userList = new ArrayList<>();
        for (User user : allUser) {
            String userName = user.getUserName();
            String idNumber = user.getIdNumber();
            String password = user.getPassword();
            String phone = user.getPhone();
            int id = user.getId();
            String loginTime = null;
            String registerTime = null;
            if (user.getLoginTime() != null) {
                loginTime=DateFormatUtil.format(user.getLoginTime());
            }
            if (user.getRegisterTime() != null) {
                registerTime=DateFormatUtil.format(user.getRegisterTime());
            }
            BootstrapTableUser bootstrapTableUser = new BootstrapTableUser(id, userName, phone, idNumber, password, registerTime, loginTime);
            userList.add(bootstrapTableUser);
        }
        return userList;
    }

    /**
     * 添加用户的方法
     *
     * @param user 需要添加的用户对象
     * @return ture表示添加成功
     */
    public static boolean addUser(User user) {
        return userDao.addUser(user);
    }

    /**
     * 通过手机号查找用户
     *
     * @param phone 手机号
     * @return 找到的用户对象，没找到返回null
     */
    public static User findByPhone(String phone) {
        return userDao.findByPhone(phone);
    }

    /**
     * 修改用户的方法
     *
     * @param id   需要修改的用户id
     * @param user 修改后的用户对象
     * @return true表示修改成功
     */
    public static boolean update(int id, User user) {
        return userDao.update(id,user);
    }

    /**
     * 通过电话删除用户的方法
     *
     * @param phone 需要删除的用户电话
     * @return true表示修改成功
     */
    public static boolean deleteByPhone(String phone) {
        return userDao.deleteByPhone(phone);
    }

    public static int[] console(){
        return userDao.console();
    }

    public static boolean updateWXUser(int id, User user) {
        return userDao.updateWXUser(id,user);
    }

    public static boolean updateUserNameAndPhone(int id,User user) {
        return userDao.updateUserNameAndPhone(id, user);
    }
}
